#include <stdio.h>
#define N 520
#define L 1314
#define _ (*(p+1))
#define _1 (*(p+2))
long __=1<<31,s[L+3] = {1<<31|1},*p=&s[L];
void main(){
	for(;++*p<=N;_=_1=0) while(s[_1]){
		_=((s[_1]=(*p*(s[_1]&255)|__)+_)&~__)>>8,s[_1]&=__|255;
		if(!s[++_1])while(_)s[_1++]=(_&255)|__,_>>=8;}
	printf("%d!\n=\n0x", N);
	while(L>_)printf((!s[L-++_-1])?"":"%02x",s[L-_-2]&255);
}
